---
title: "Context Providers"
description: "Context Providers allow you to type '@' and see a dropdown of content that can all be fed to the LLM as context. Every context provider is a plugin, which means if you want to reference some source of information that you don't see here, you can request (or build!) a new context provider."
---

As an example, say you are working on solving a new GitHub Issue. You type '@Issue' and select the one you are working on. Continue can now see the issue title and contents. You also know that the issue is related to the files 'readme.md' and 'helloNested.py', so you type '@readme' and '@hello' to find and select them. Now these 3 "Context Items" are displayed inline with the rest of your input.

![Context Items](/images/customize/images/context-provider-example-0c96ff77286fa970b23dddfdc1fa986a.png)

## Built-in Context Providers

You can add any built-in context-providers in your config file as shown below:

### @File Context Provider – Reference Files in Your Workspace

Reference any file in your current workspace.

config.yaml

```
context:  - provider: file
```

### @Code Context Provider – Reference Functions and Classes

Reference specific functions or classes from throughout your project.

config.yaml

```
context:  - provider: code
```

### @Git Diff Context Provider – Reference Branch Changes

Reference all of the changes you've made to your current branch. This is useful if you want to summarize what you've done or ask for a general review of your work before committing.

config.yaml

```
context:  - provider: diff
```

### @Current File Context Provider – Reference the Active File

Reference the currently open file.

config.yaml

```
context:  - provider: currentFile
```

### @Terminal Context Provider – Reference Last Terminal Command and Output

Reference the last command you ran in your IDE's terminal and its output.

config.yaml

```
context:  - provider: terminal
```

### @Docs Context Provider – Reference Documentation Site Content

Reference the contents from any documentation site.

config.yaml

```
context:  - provider: docs
```

Note that this will only enable the `@Docs` context provider.

To use it, you need to add a documentation site to your config file. See the [docs](/customize/overview#documentation-context) page for more information.

### @Open Context Provider – Reference All Open Files or Pinned Files

Reference the contents of all of your open files. Set `onlyPinned` to `true` to only reference pinned files.

config.yaml

```
context:
  - provider: open
    params:
      onlyPinned: true
```

### @Web Context Provider – Reference Relevant Web Pages

Reference relevant pages from across the web, automatically determined from your input.

Optionally, set `n` to limit the number of results returned (default 6).

config.yaml

```
context:
  - provider: web
    params:
      n: 5
```

### @Codebase Context Provider – Reference Relevant Codebase Snippets

Reference the most relevant snippets from your codebase.

config.yaml

```
context:
  - provider: codebase
```

Read more about indexing and retrieval [here](/customize/overview#codebase-context).

### @Folder Context Provider – Reference Code from a Specific Folder

Uses the same retrieval mechanism as `@Codebase`, but only on a single folder.

config.yaml

```
context:  - provider: folder
```

### @Search Context Provider – Reference Code Search Results

Reference the results of codebase search, just like the results you would get from VS Code search.

config.yaml

```
context:
  - provider: search
    params:
      maxResults: 100 # optional, defaults to 200
```

This context provider is powered by [ripgrep](https://github.com/BurntSushi/ripgrep).

### @Url Context Provider – Reference Content from a URL

Reference the markdown converted contents of a given URL.

config.yaml

```
context:
  - provider: url
```

### @Clipboard Context Provider – Reference Clipboard Items

Reference recent clipboard items

config.yaml

```
context:
  - provider: clipboard
```

### @Tree Context Provider – Reference Workspace File Structure

Reference the structure of your current workspace.

config.yaml

```
context:
  - provider: tree
```

### @Problems Context Provider – Reference Problems in the Current File

Get Problems from the current file.

config.yaml

```
context:
  - provider: problems
```

### @Debugger Context Provider – Reference Debugger Local Variables

Reference the contents of the local variables in the debugger. Currently only available in VS Code.

config.yaml

```
context:
  - provider: debugger
    params:
      stackDepth: 3
```

Uses the top _n_ levels (defaulting to 3) of the call stack for that thread.

### @Repository Map Context Provider – Reference Codebase Outline and Signatures

Reference the outline of your codebase. By default, signatures are included along with file in the repo map.

`includeSignatures` params can be set to false to exclude signatures. This could be necessary for large codebases and/or to reduce context size significantly. Signatures will not be included if indexing is disabled.

config.yaml

```
context:
  - provider: repo-map
    params:
      includeSignatures: false # default true
```

Provides a list of files and the call signatures of top-level classes, functions, and methods in those files. This helps the model better understand how a particular piece of code relates to the rest of the codebase.

In the submenu that appears, you can select either `Entire codebase`, or specify a subfolder to generate the repository map from.

This context provider is inspired by [Aider's repository map](https://aider.chat/2023/10/22/repomap.html).

### @Operating System Context Provider – Reference System Architecture and Platform

Reference the architecture and platform of your current operating system.

config.yaml

```
context:
  - provider: os
```

### Using the Model Context Protocol (MCP) in Continue

The [Model Context Protocol](https://modelcontextprotocol.io/introduction) is a standard proposed by Anthropic to unify prompts, context, and tool use. Continue supports any MCP server with the MCP context provider. Read their [quickstart](https://modelcontextprotocol.io/quickstart) to learn how to set up a local server and then set up your configuration like this:

config.yaml

```
mcpServers:
  - name: My MCP Server
    command: uvx
    args:
      - mcp-server-sqlite
      - --db-path
      - /Users/NAME/test.db
```

You'll then be able to type "@" and see "MCP" in the context providers dropdown.

### How to Request a New Context Provider in Continue

Not seeing what you want? Create an issue [here](https://github.com/continuedev/continue/issues/new?assignees=TyDunn&labels=enhancement&projects=&template=feature-request-%F0%9F%92%AA.md&title=) to request a new Context Provider.
